package com.ccys.cms.service.discount;

import com.ccys.common.vo.ResponseResult;
import com.ccys.db.dto.discount.PromoCodeDto;
import com.ccys.db.dto.discount.PromoCodeMemberDto;
import com.ccys.db.entity.TblPlan;
import com.ccys.db.entity.TblPromoCode;
import com.ccys.db.rely.service.BaseService;
import com.ccys.db.vo.discount.PromoCodeFindListSelectVo;
import com.ccys.db.vo.discount.PromoCodeMemberFindByCodeIdVo;
import com.ccys.db.vo.discount.PromoCodePageQueryVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 优惠卷接口
 * @author: ZhangJingCan
 * @create: 2023-12-15 13:47
 **/
public interface PromoCodeService extends BaseService<TblPromoCode> {
    ResponseResult<List<TblPlan>, Object> findPlanByType(Integer type);

    ResponseResult findPromoCodeByCode(String code);

    ResponseResult savePromoCode(PromoCodeDto dto);

    ResponseResult updatePromoCodeStatus(PromoCodeDto dto);

    ResponseResult<PageInfo<PromoCodePageQueryVo>, Object> findPagePromoCode(PromoCodeDto dto);

    ResponseResult deletePromoCode(PromoCodeDto dto);

    ResponseResult addPromoCodeMember(PromoCodeMemberDto dto);

    ResponseResult deletePromoCodeMember(PromoCodeMemberDto dto);

    ResponseResult<PageInfo<PromoCodeMemberFindByCodeIdVo>, Object> findPromoCodeMember(PromoCodeDto dto);

    ResponseResult<List<PromoCodeFindListSelectVo>, Object> findListSelect();
}
